#!/usr/bin/env python
# -*- conding: utf-8 -*-

"""
@Time     : 2024/8/20 7:23
@Author   : liujingmao
@File     : 1.Prompt组件基础用法.py
"""

from datetime import datetime

## 最基本的用法
from langchain_core.messages import AIMessage
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate, MessagesPlaceholder, HumanMessagePromptTemplate

promt = PromptTemplate.from_template("请讲一个关于{subject}的冷笑话")

print(promt.format(subject="中国足球"))

promt_value = promt.invoke({"subject": "中国足球"})

print(promt_value.to_string())

print(promt_value.to_messages())

print("===================================")

chat_prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "Hello,你是聊天机器人，请根据用户的提问回答，当前时间是：{now}"),
        MessagesPlaceholder('chat_history'),
        HumanMessagePromptTemplate.from_template("请讲一个关于{subject}的冷笑话")
    ]
).partial(now=datetime.now())

chat_prompt_value = chat_prompt.invoke(
    {
        "subject": "中国足球",
        "chat_history": [
            ("human", "我叫茂茂"),
            AIMessage("我是M-GPT，有什么可以帮助到您")
        ]
    }
)

print(chat_prompt)
print(chat_prompt_value)
print(chat_prompt_value.to_messages())
print(chat_prompt_value.to_string())
